package com.charon.auth.demo.annotation;

import com.charon.auth.demo.service.HelloService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
  *@ClassName: MyConstraintValidate
  *@Description: 注解功能的处理类，注意：即便该类中使用了Autowired注解，但是当Spring看到该类实现了ConstraintValidator的时候，
  *         会自动把该类实现为一个Bean。
  *@Author: Charon [248135724@qq.com]
  *@Date: 2019/1/12 0012 22:00
  *@Version: 1.0
  */
//接口的两个泛型，第一个是自己定义的那个注解，第二个是该注解放在什么类型上
@Slf4j
public class MyConstraintValidate implements ConstraintValidator<MyConstraint,String> {


    @Autowired
    private HelloService helloService;

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        log.info(value);
        helloService.greeeting(value);
        //返回True校验成功，false失败
        return false;
    }

    @Override
    public void initialize(MyConstraint constraintAnnotation) {
        System.out.println("MyConstraint init");
    }
}
